
$(function () {
    // 正则表达匹配邮箱
    function validateEmail(email) {
        const regex = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
        return regex.test(email);  // 返回 true 或 false
    }

    function bindCaptchaBtnClick() {
        $('#button-addon2').click(function () {
            let $this = $(this);
            let email = $("input[name='email']").val();
            if (!email) {
                alert("请先输入邮箱！");
                return;
            }else if(!validateEmail(email)){
                alert("请输入有效邮箱！")
                return;
            }
            // 取消点击事件
            $this.off('click');
            // 发送ajax请求
            $.ajax(
                 '/auth/send_email_captch/',{

                type: 'GET',
                method: 'GET',
                data: {email: email,tpl: "register"},
                success: function (result) {
                    if (result['code']==200) {
                        alert("验证码发送成功！")
                    } else {
                        alert(result['message']);
                        bindCaptchaBtnClick();
                    }
                },
                fail: function (error) {
                    console.log(error);
                },
            })
            // 计时器
            let countdown = 60;
            $this.prop('disabled', true);
            let timer = setInterval(function () {
                if (countdown <= 1) {
                    $this.text("发送验证码");
                    $this.prop('disabled', false);
                    // 清除计时器
                    clearInterval(timer);
                    // 重新绑定点击事件
                    bindCaptchaBtnClick();
                } else {
                    countdown--;
                    $this.text(countdown.toString().padStart(2, '0') + "秒后重新发送");
                }
            }, 1000);
        });
    }
    bindCaptchaBtnClick();

});